package spectra.ee.web.common.model;

import spectra.base.BasePublic;
import spectra.base.util.StringUtil;

/**
 * 리스트를 가져오거나 여러 아이디로 검색할 때 사용하기 위한 범용적인 용도의 모델.
 */
public class IdListForm
{
    /** 타겟ID. */
    protected String targetId;

    /** ID 문자열. ((char)30 으로 연결됨) */
    private String rowIds = null;

    /** ID 배열. (ID 문자열을 파싱한 배열)*/
    private String[] rowIdList = new String[]{};

    /** 설정할 값. */
    private String value;

    /** 도메인 ID 값. */
    private String domainId;

    /** 수정자ID. */
    private String updatedBy;

    /** 수정일자. (YYYYMMDDHHMMSS) */
    private String updatedDate;
    
    /** 리스트를 가져올 시작 번호. */
    private int startNo = 0;
    
    /** 리스트를 가져올 종료 번호. */
    private int endNo = 10;
    ///////////////////////////////////////////////////////////////////////////
    // 생성자 선언
    /**
     * 기본 생성자. (Ajax에서만 사용)
     */
    public IdListForm()
    {
        super();
    }

    /**
     * 아이디 리스트.
     *
     * @param rowIdList 아이디 리스
     */
    public IdListForm(String[] rowIdList)
    {
        super();
        this.rowIdList = rowIdList;
    }

    /**
     * 아이디 리스트.
     *
     * @param targetId 타겟 리스
     * @param rowIdList 아이디 리스
     */
    public IdListForm(String targetId, String[] rowIdList)
    {
        super();
        this.targetId = targetId;
        this.rowIdList = rowIdList;
    }

    /**
     * 타켓ID getter.
     *
     * @return 타겟ID.
     */
    public String getTargetId()
    {
        return this.targetId;
    }

    /**
     * 타켓ID setter.
     * @param targetId 타켓ID.
     */
    public void setTargetId(String targetId)
    {
        this.targetId = targetId;
    }

    /**
     * ROWID setter.
     * @param rowIds ROWID.
     */
    public void setRowIds(String rowIds)
    {
        this.rowIds = rowIds;
    }

    /**
     * ROWID getter.
     * @return rowIds ROWID.
     */    
    public String getRowIds()
    {
        return rowIds;
    }
    
    /**
     * rowID 리스트 getter.
     * @return rowIdList rowID 리스트.
     */    
    public String[] getRowIdList()
    {
        if( rowIds != null )
        {
            this.rowIdList = StringUtil.split(rowIds, BasePublic.COLUMN_SEPARATOR);
        }

        return this.rowIdList;
    }

    /**
     * row 리스트 setter.
     * @param rowIdList row리스트.
     */
    public void setRowIdList(String[] rowIdList)
    {
        this.rowIdList = rowIdList;
    }

    /**
     * 응답값 getter.
     * @return value 응답값.
     */
    public String getValue()
    {
        return value;
    }

    /**
     * 응답값 setter.
     * @param value 응답값.
     */
    public void setValue(String value)
    {
        this.value = value;
    }

    /**
     * 도메인ID getter.
     * @return domainId 도메인ID.
     */
    public String getDomainId()
    {
        return domainId;
    }

    /**
     * 도메인ID setter.
     * @param domainId 도메인ID.
     */
    public void setDomainId(String domainId)
    {
        this.domainId = domainId;
    }

    /**
     * 수정ID getter.
     * @return updatedBy 수정ID.
     */
    public String getUpdatedBy()
    {
        return this.updatedBy;
    }

    /**
     * 수정ID setter.
     * @param updatedBy 수정ID.
     */
    public void setUpdatedBy(String updatedBy)
    {
        this.updatedBy= updatedBy;
    }

    /**
     * 수정일자. getter.
     * @return updatedDate 수정일자.
     */
    public String getUpdatedDate()
    {
        return this.updatedDate;
    }

    /**
     * 수정일자. setter.
     * @param updatedDate 갱신 일자.
     */
    public void setUpdatedDate(String updatedDate)
    {
        this.updatedDate= updatedDate;
    }
    
    /**
     * 종료번호 getter.
     *
     * @return 종료번호.
     */
    public int getEndNo()
    {
        return endNo;
    }
    
    /**
     * 시작번호 getter.
     *
     * @return 시작번호.
     */
    public int getStartNo()
    {
        return startNo;
    }
    
    /**
     * 종료번호 setter.
     *
     * @param endNo 종료번호
     */
    public void setEndNo(int endNo)
    {
        this.endNo = endNo;
    }
    
    /**
     * 시작번호 setter.
     *
     * @param startNo 시작번호
     */
    public void setStartNo(int startNo)
    {
        this.startNo = startNo;
    }

    /**
     * Constructs a <code>String</code> with all attributes
     * in name = value format.
     *
     * @return a  representation
     * of this object.
     */
    public String toString()
    {
        String strObject = "";

        strObject = "IdListForm [ "
            + super.toString()
            + "\trowIds = " + this.rowIds
            + "\trowIdList = " + this.rowIdList
            + "\tvalue = " + this.value
            + "\tdomainId = " + this.domainId
            + "\tupdatedBy = " + this.updatedBy
            + "\tupdatedDate = " + this.updatedDate
            + " ]";

        return strObject;
    }
}

